from Alexander Stohr
authorrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Tue, 17 Aug 2004 17:34:13 +0000 (17:34 +0000)
committerrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Tue, 17 Aug 2004 17:34:13 +0000 (17:34 +0000)
tweak track format for garmap2.

gpsbabel/pcx.c

index cba08c71d680ac554a028a74373ff3a643218419..2a363c7e5294fd7072b4e4c49da9a8ef5990ebdd 100644 (file)
@@ -103,13 +103,25 @@ data_read(void)
                        waypt_add(wpt_tmp);
                        break;
                case 'H':
-                       if (ibuf[3] == 'T' && ibuf[4] == 'N') {
+                       /* Garmap2 has headers 
+  "H(2 spaces)LATITUDE(some spaces)LONGTITUDE(etc... followed by);track
+                       everything else is 
+                         H(2 chars)TN(tracknane\0)
+                       */
+                       if (ibuf[3] == 'L' && ibuf[4] == 'A') {
+                               track_head = route_head_alloc();
+                               track_head->rte_name = strdup("track");
+                               track_add_head(track_head);
+                       } else if (ibuf[3] == 'T' && ibuf[4] == 'N') {
                                track_head = route_head_alloc();
                                track_head->rte_name = strdup(&ibuf[6]);
                                track_add_head(track_head);
                        }
                        break;
                case 'T':
+                       if (track_head == NULL) {
+                               fatal(MYNAME ": track record found before track header.\n");
+                       }
                        sscanf(ibuf, "T %lf %lf %s %s %ld", 
                                &lat, &lon, date, time, &alt);
                        memset(&tm, 0, sizeof(tm));